1. Field of the Invention
The present invention is an apparatus for economically generating pseudo-random codes. The present invention has particular utility in generating codes of the Gold code type for use as the Clear/Acquisition (C/A) code in the GPS (Global Positioning System) earth receivers.
2. Description of the Contemporary and/or Prior Art
Prior art implementations to generate the C/A codes for GPS receivers require complex circuitry that increase the cost of the receiver. In prior art, the code is generated by implementing two maximal length shift registers, in standard digital logic. Additional logic is required to implement the code select involving "exclusive or" logic. Most prior art implementations require ten or more logic chips to provide a code generator.
As background, the Air Force initiated development of the GPS (Global Positioning System) a number of years ago. This system allows a user, equipped with the proper equipment, to accurately determine his position anywhere in the world at any time. The system makes use of 18 satellites in orbit at a height of 10,900 miles above the surface of the earth. Each satellite continuously transmits signals at frequencies of 1575.42 MHz, known as L1 and 1227.6 MHz, known as L2. The L1 frequency is phase modulated by two independent modulations. These are known as the C/A (Clear/Acquisition) signal and the P (Precision) signal. The two signals are phase modulated on the carrier in an orthogonal manner, i.e., at 90 degrees to each other. The L2 transmission consists of a carrier bi-phase modulated by only the P code.
The C/A signal is generated by bi-phase modulating the carrier with a pseudo-random code that has a chip (bit) rate of 1.023 MHz, a length of 1023 bits and repeats every millisecond. The code is of a form known as a Gold code. This code is generated by exclusive oring two 10-bit maximal length shift registers that have certain properties. There are a total of 36 different codes formed by combining various phases of the two codes. Each satellite within the constellation is assigned a different code.
The P signal is generated by bi-phase modulating the carrier with a pseudo-random code that has a chip rate of 10.23 MHz and a length of about 270 days. The code is reset every week. A different phase (week) of the code is used for each satellite. This code with not be described further in this document.
A system user must be equipped with a receiver that can receive the transmissions from the satellites. Typically signals from a minimum of four satellites must be tracked to determine the user's position. All satellites transmit the C/A codes essentially in synchronization, i.e., all satellites will be transmitting the code epochs at the same time. By the user noting the difference in time of receipt of the epochs from the four satellites, the range differences from the user to each satellite can be determined. The satellites also transmit a digital data stream that contains information that allows the positions of the satellites as a function of time to be determined. By combining this information with the range difference information the position of the user can be determined.
To track the transmissions from the satellite the user must generate a relica of the code sequence generated by the satellite. The replica is used to effectively cancel out the code imparted on the signal, by the satellite, leaving only a carrier which can be tracked using conventional techniques. The phase of the replica is shifted till it is precisely aligned with the code on the received signal. The timing of this shifted code with respect to local time is then indicative of the range between the satellite and the receiver.
Again, in a typical prior art receiver, the code is generated by implementing the two maximal length shift registers in standard digital logic. Additional logic is required to implement the code select and "exclusive or" logic. Most implementations will require ten or more logic chips to implement the code generator.